<!DOCTYPE html>
<html>
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
	<script>
		function Class1() {
			this.name = "class1";

			this.showNam = function() {
				alert(this.name);
			}
		}

		function Class2() {
			this.name = "class2";
		}

		var c1 = new Class1();
		var c2 = new Class2();

		c1.showNam.call(c2);
		//call 的意思是把 c1 的方法放到c2上执行，原来c2是没有showNam() 方法，现在是把c1 的showNam()方法放到 c2 上来执行，所以this.name 应该是 class2，执行的结果就是 ：alert（"class2"）;
		function Class3() {
			this.showTxt = function(txt) {
				alert(txt);
			}
		}

		function Class4() {
			Class3.call(this);
		}

		var c2 = new Class4();

		c2.showTxt("cc");
		//Class1.call(this) 的 意思就是使用 Class1 对象代替this对象，那么 Class2 中不就有Class1 的所有属性和方法了吗，c2 对象就能够直接调用Class1 的方法以及属性了，执行结果就是：alert（“cc”）;

	</script>

</html>